/**
 * 池化原理
 */
const urlList=new Array(100).fill('xxx')

function task(){
    return new Promise((resolve)=>{
        setTimeout(()=>{
            resolve()
        },1000)
    })
}


// 出队触发回调，加入数据
// 从watiQueue加入pool，增加调度机制

/**
 * 掘金原版：
 * 向池子调度任务的思路：池子中的每个任务结束时都会，主动从等待队列中取一个执行
 * 
 * 思考：
 *      1、无优先级调度策略（从等待队列进入池子）
 *      2、是否可以使用  requestAnimationFrame、setTimeout 等来一直检查池子状态，如果有任务完成触发回调，然后执行调度策略加入池子
 */
// const pool=new Set() // 池子（放执行中的）
// const watiQueue=[] // 等待队列
// function request(url){
//     return new Promise((resolve,reject)=>{
//         const isFull=pool.size()>10 // 是否池子已满

//         // 执行任务+任务完成后从队列取出新任务放入池子
//         const excuteTask=()=>{
            
//         }

//         if(isFull){ //池子满了，放入等待队列
//             watiQueue.push(excuteTask)
//         }else{//池子没满，放入池子，然后执行
//             pool.add(excuteTask)
//             excuteTask()
//         }
//     })
// }

// class Pool{
//     const pool=new Set() // 池子（放执行中的）
//     const watiQueue=[] // 等待队列
//     constructor(){

//     }
// }